package fun.zhufn.oldcomm.model.bo.customlist;

import fun.zhufn.oldcomm.model.bo.json.JsonList;

import java.util.ArrayList;
import java.util.List;

/** 列表
 * @param <T> 列表元素类型
 */
public abstract class CustomList<T> {
    /** 获取数据
     * @return 列表数据
     */
    public List<T> getData() {
        return data;
    }

    /**
     * @param data 列表数据
     */
    public void setData(List<T> data) {
        this.data = data;
    }

    protected List<T> data = new ArrayList<>();

    /** 转成JsonList
     * @return JsonList数据
     */
    public abstract JsonList toJsonList();

    /** 从JsonList生成
     * @param d JsonList
     */
    public abstract void fromJsonList(JsonList d);

    /** 添加
     * @param x 添加的数据
     */
    public void add(T x) {
        data.add(x);
    }
}
